import asrauthentication from './asrauthentication.js';

const appid = 1309991399
const secretId = 'AKIDGNLNnJn5GQRGyiRzLTPBk6FID9xc8ar9'
const secretKey = 'a4zjQ8kEXJ0c1Nn5GMbvJbwKet6UCoEX'
export default {
	getUrl: function(text) {
		const timestamp = parseInt(new Date().getTime() / 1000) - 1;
		const params = {
			Action:'TextToStreamAudioWS',
			AppId:appid,
			SecretId: secretId,
			Timestamp: timestamp,
			Expired: timestamp + 60 * 60,
			SessionId:this.uuid(),
			Text:text,
			VoiceType:101024,
			Volume:10,
			EnableSubtitle:true,
			Speed:2,
			SampleRate:16000,
			Codec:'mp3'
		};
		const url =
			'GETtts.cloud.tencent.com/stream_ws?' +
			Object.keys(params)
				.sort(function(a, b) {
					return a.localeCompare(b);
				})
				.map(key => {
					return key + '=' + params[key];
				})
				.join('&');
		const signature = asrauthentication.signCallback(url, secretKey);
		const url1 =
			'tts.cloud.tencent.com/stream_ws?' +
			Object.keys(params)
				.sort(function(a, b) {
					return a.localeCompare(b);
				})
				.map(key => {
					return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);
				})
				.join('&');
		return url1 + '&Signature=' + encodeURIComponent(signature);
	},

	uuid:function () {
	    var s = [];
	    var hexDigits = "0123456789abcdef";
	    for (var i = 0; i < 36; i++) {
	        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
	    }
	    s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
	    s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
	    s[8] = s[13] = s[18] = s[23] = "-";

	    var uuid = s.join("");
	    return uuid;
	}
}
